Skip to content

chore(comps): annotate temp-workaround overlays with metadata - #17973

Merged
Tobias Brick (tobiasb-ms) merged 2 commits into
microsoft:4.0from
liunan-ms:liunan/azl-temp-workaround
Aug 3, 2026
Merged

Tobias Brick (tobiasb-ms) merged 2 commits into
microsoft:4.0from
liunan-ms:liunan/azl-temp-workaround

Conversation

@liunan-ms

@liunan-ms Nan Liu (liunan-ms) commented Jul 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This PR adds per-file overlays (overlays/*.overlay.toml) carrying file-level [metadata] (category + upstream-status) for a set of temporary bootstrap / version-pin workarounds.

  • 8 components touched
  • 9 overlay files added

The workarounds fall into two buckets:

  • Bootstrap artifacts (category = "azl-temp-workaround", upstream-status = "inapplicable") — missing transitive BuildRequires and disabled
    bindings/plugins caused by bootstrap-mode builds stripping golang(...) /
    auto-generated Requires, or by OCaml/libguestfs not yet being buildable in
    the bootstrap tag: erlang-rebar3, golang-github-prometheus-common,
    golang-mongodb-mongo-driver, libnbd, migrate, nbdkit (0001),
    pyOpenSSL.
  • Missing/dead dependency workaround — golang-github-envoyproxy-control-plane
    disables dynamic BuildRequires generation due to the dead
    golang-github-sagikazarmark-crypt transitive dep.
  • Permanent pruning — nbdkit (0002) disables the mingw subpackage
    (category = "azl-pruning", upstream-status = "needs-upstream-hook"); AZL
    never ships mingw toolchains.

Changes

Three commits, deliberately kept separate so the two scaffolding pieces can be
dropped independently before merge:

  • chore(comps): annotate temp-workaround overlays with metadata
    Adds the per-file overlays with file-level [metadata] and moves the
    rationale comments out of the comp.toml files into their overlay files.
  • TEMP: enable overlay-files loading for PR check — ⚠️ PR-CHECK ONLY,
    REVERT BEFORE MERGE

    Sets default-component-config.overlay-files = ["overlays/*.overlay.toml"]
    in components.toml so every component inherits per-file overlay discovery.
    Standalone so it can be reverted independently.
  • chore(azldev): pin to 830e6fed and regenerate schema — ⚠️ PR-CHECK
    ONLY, REVERT BEFORE MERGE

    Pins .azldev-version to 830e6fed79750f8e24ae17cd630248f50c90c8a9 (upstream-backport
    overlay category, URLRef replacing BugRef, required upstream-status replacing the
    old upstreamable boolean, azl-dep-missing-workaround → azl-temp-workaround
    rename, and optional component-group [metadata]) and regenerates
    external/schemas/azldev.schema.json so PR checks run against a tool that
    understands the overlay-files / metadata fields.

Validation

  • azldev comp render in the PR check pending
  • Regenerated schema validates the new metadata (the azl-temp-workaround
    category is present in the pinned tool's schema).
  • metadata is fingerprint-excluded, so lock files are unaffected.

Copilot AI review requested due to automatic review settings July 10, 2026 01:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Moves temporary build workarounds into metadata-annotated per-file overlays and temporarily enables supporting azldev functionality.

Changes:

  • Migrates inline overlays for eight components into nine overlay files.
  • Adds intent and upstream-status metadata.
  • Temporarily updates overlay discovery, azldev, and its schema.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.azldev-version Pins metadata-capable azldev.
external/schemas/azldev.schema.json Regenerates the azldev schema.
base/comps/components.toml Enables per-file overlay discovery.
base/comps/pyOpenSSL/pyOpenSSL.comp.toml Removes migrated inline overlays.
base/comps/pyOpenSSL/overlays/0001-pin-python3-cryptography-45.overlay.toml Adds cryptography pin overlays and metadata.
base/comps/nbdkit/nbdkit.comp.toml Removes migrated inline overlays.
base/comps/nbdkit/overlays/0001-disable-libguestfs-plugin-libguestfs.overlay.toml Disables unavailable plugins with metadata.
base/comps/nbdkit/overlays/0002-disable-mingw-subpackage-ship.overlay.toml Disables permanent mingw packaging.
base/comps/migrate/migrate.comp.toml Removes migrated inline overlay.
base/comps/migrate/overlays/0001-add-missing-jmespath-buildrequires.overlay.toml Adds bootstrap dependency workaround.
base/comps/libnbd/libnbd.comp.toml Removes migrated inline overlay.
base/comps/libnbd/overlays/0001-disable-ocaml-bindings-ocaml.overlay.toml Disables incompatible OCaml bindings.
base/comps/golang-mongodb-mongo-driver/golang-mongodb-mongo-driver.comp.toml Removes migrated inline overlay.
base/comps/golang-mongodb-mongo-driver/overlays/0001-add-missing-transitive-buildrequires.overlay.toml Adds missing transitive dependency.
base/comps/golang-github-prometheus-common/golang-github-prometheus-common.comp.toml Removes migrated inline overlay.
base/comps/golang-github-prometheus-common/overlays/0001-add-missing-jmespath-buildrequires.overlay.toml Adds missing bootstrap dependency.
base/comps/golang-github-envoyproxy-control-plane/golang-github-envoyproxy-control-plane.comp.toml Removes migrated inline overlay.
base/comps/golang-github-envoyproxy-control-plane/overlays/0001-disable-dynamic-buildrequires-generation.overlay.toml Disables broken dependency generation.
base/comps/erlang-rebar3/erlang-rebar3.comp.toml Removes migrated inline overlay.
base/comps/erlang-rebar3/overlays/0001-enable-bootstrap-mode-break.overlay.toml Restores temporary bootstrap mode.

includes = ["**/*.comp.toml", "component-check-disablement.toml", "component-mingw-disablement.toml", "components-publish-channels.toml"]

[default-component-config]
overlay-files = ["overlays/*.overlay.toml"]
@liunan-ms
Nan Liu (liunan-ms) force-pushed the liunan/azl-temp-workaround branch from a0a06ba to 21c5047 Compare July 10, 2026 20:04
@liunan-ms
Nan Liu (liunan-ms) marked this pull request as ready for review July 10, 2026 21:12
@liunan-ms
Nan Liu (liunan-ms) requested a review from a team as a code owner July 10, 2026 21:12
Copilot AI review requested due to automatic review settings July 10, 2026 21:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated 4 comments.

type = "spec-search-replace"
section = "%generate_buildrequires"
regex = "%go_generate_buildrequires"
replacement = "# Disabled: transitive dep on dead golang-github-sagikazarmark-crypt (see comp.toml)"
Comment on lines +3 to +4
[default-component-config]
overlay-files = ["overlays/*.overlay.toml"]
Comment thread .azldev-version Outdated
@@ -1 +1 @@
0256227f5434d9e00d7c8501b16848efa400a72b
707663e64a5b07c0690cdc300006974376e6f414
Comment on lines +122 to +129
"overlay-files": {
"items": {
"type": "string"
},
"type": "array",
"title": "Overlay files",
"description": "Path or glob patterns (relative to the component config file or matched spec directory) matched against the filesystem to locate per-file overlay documents after component config resolution. Use an empty list to disable inherited overlay-file patterns"
},

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated 3 comments.

type = "spec-search-replace"
section = "%generate_buildrequires"
regex = "%go_generate_buildrequires"
replacement = "# Disabled: transitive dep on dead golang-github-sagikazarmark-crypt (see comp.toml)"
Comment on lines +3 to +4
[default-component-config]
overlay-files = ["overlays/*.overlay.toml"]
Comment thread .azldev-version Outdated
@@ -1 +1 @@
0256227f5434d9e00d7c8501b16848efa400a72b
830e6fed79750f8e24ae17cd630248f50c90c8a9
Mechanically relocate the inline [[components.<name>.overlays]] entries into
per-file overlays/*.overlay.toml documents, one logical change per file. The
comp.toml files are reduced to their bare [components.<name>] headers.

This commit is a pure move: overlay values and apply order are identical
before and after, and no [metadata] blocks are added yet (that follows in a
separate commit). The rendered specs are unchanged.
Add the file-level [metadata] block to each per-file overlay document
(category, upstream-status, and commit references where applicable).
Metadata is documentation only and is excluded from the component
fingerprint, so the rendered specs are unchanged.
Copilot AI review requested due to automatic review settings August 3, 2026 18:00
@liunan-ms
Nan Liu (liunan-ms) force-pushed the liunan/azl-temp-workaround branch from b11e96c to 7d82400 Compare August 3, 2026 18:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.

Suppressed comments (2)

base/comps/golang-github-envoyproxy-control-plane/overlays/0001-disable-dynamic-buildrequires-generation.overlay.toml:17

  • The rationale was moved out of comp.toml, so the generated spec now tells readers to consult a file that no longer contains it. Remove the stale parenthetical (the overlay description already states the reason).
replacement = "# Disabled: transitive dep on dead golang-github-sagikazarmark-crypt (see comp.toml)"

base/comps/pyOpenSSL/overlays/0001-pin-python3-cryptography-45.overlay.toml:5

  • This document does not pin pyOpenSSL to 25.1.0; that pin is the upstream-commit in pyOpenSSL.comp.toml. Moving the explanation here leaves the actual spec pin without its required rationale and misleadingly attributes it to these BuildRequires overlays. Keep the version-pin explanation beside spec, and limit this file's comment to why the cryptography bounds are added.
# Pin to 25.1.0 because 25.2.0+ requires cryptography >= 45.0.7, but we ship
# python-cryptography 45.0.4 (pinned because 46.x needs crate(asn1) >= 0.22.0,
# not yet available). 25.1.0 requires cryptography >= 41.0.5, < 46 which is
# compatible with our 45.0.4.
# Re-align to latest when python-cryptography is updated to >= 45.0.7.

@tobiasb-ms

Copy link
Copy Markdown
Contributor

/azp run

@tobiasb-ms Tobias Brick (tobiasb-ms) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spot-checked everything, and generated before/after component list json files. Validated with Copilot that the only differences are the metadata being added.

@tobiasb-ms
Tobias Brick (tobiasb-ms) merged commit fa50983 into microsoft:4.0 Aug 3, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants